package com.dt.system.mapper;

import java.util.List;
import com.dt.system.domain.Task;

/**
 * 任务Mapper接口
 * 
 * @author yxg
 * @date 2024-01-26
 */
public interface TaskMapper 
{
    /**
     * 查询任务
     * 
     * @param taskId 任务主键
     * @return 任务
     */
    public Task selectTaskByTaskId(Long taskId);

    /**
     * 查询任务列表
     * 
     * @param task 任务
     * @return 任务集合
     */
    public List<Task> selectTaskList(Task task);

    /**
     * 新增任务
     * 
     * @param task 任务
     * @return 结果
     */
    public int insertTask(Task task);

    /**
     * 修改任务
     * 
     * @param task 任务
     * @return 结果
     */
    public int updateTask(Task task);

    /**
     * 删除任务
     * 
     * @param taskId 任务主键
     * @return 结果
     */
    public int deleteTaskByTaskId(Long taskId);

    /**
     * 批量删除任务
     * 
     * @param taskIds 需要删除的数据主键集合
     * @return 结果
     */
    public int deleteTaskByTaskIds(Long[] taskIds);



    //============================================app接口==============================

    /**
     * 根据用户uid，查询用户待执行的列表
     * @param uid 用户id
     * @return  任务列表
     */
    public List<Task> selectTaskListByExec(Long uid);


    /**
     *  根据登录用户的用户id查询发布任务列表
     *  查询所有未归档的数据
     *  查询条件：发布人等于id的记录
     *
     *   @param uid  发布人用户id
     *   @return 任务列表
     */
    public List<Task> selectTaskListByManage(Long uid);


    /**
     * 获取未完成的提醒任务
     * @param uid 用户id
     * @return 任务列表
     *
     */
    public List<Task> selectRemindTaskListByUid(Long uid);


    /**
     * 批量更新提醒次数
     * @param taskIds 任务编号ID
     */
    public int updateTaskRemind(List<Long> taskIds);
}
